package wahadlo.nowe.math;

public class Euler implements Algorithm {

	private Double old;
	private Double h;

	/**
	 * Do inicjalizacji obiektu potrzebne są dwie wartości pierwsza to wartość
	 * początkowa w punkcie 0, druga to delta funkcji.
	 * 
	 * @param old -
	 *            wartość początkowa w punkcie 0
	 * @param h -
	 *            krok
	 */
	public Euler(Double old, Double h) {
		this.old = old;
		this.h = h;
	}

	public Double getValue(Function function, Double point) {
		Double fucValue = function.getValue(point);
		Double current = old + h * fucValue;
		// nową wartość
		System.out.println(current);
		old = fucValue; // nowa wartość zostaje zapamiętana na potrzeby dalszych
		// obliczeń
		return current; // i zwrócona
	}

}
